import request from '@/config/axios'

// 跨境电商订单发货 VO
export interface OrderShipmentVO {
  id: number // 发货编号
  shipmentNo: string // 发货单号
  orderId: number // 订单编号
  orderNo: string // 订单号
  warehouseId: number // 发货仓库编号
  warehouseName: string // 发货仓库名称
  shipmentType: number // 发货类型（1正常发货 2部分发货 3补发 4换货发货）
  shippingMethod: string // 配送方式
  shippingService: string // 配送服务
  carrierCode: string // 承运商代码
  carrierName: string // 承运商名称
  trackingNo: string // 运单号
  trackingUrl: string // 跟踪链接
  totalQuantity: number // 发货总数量
  totalWeight: number // 总重量（kg）
  totalVolume: number // 总体积（立方米）
  packageCount: number // 包裹数量
  shippingCost: number // 运费
  insuranceCost: number // 保险费
  handlingCost: number // 处理费
  totalCost: number // 总费用
  currencyCode: string // 货币代码
  estimatedDeliveryDate: Date // 预计送达日期
  estimatedTransitDays: number // 预计运输天数
  shipTime: Date // 发货时间
  pickupTime: Date // 取件时间
  inTransitTime: Date // 运输中时间
  outForDeliveryTime: Date // 派送中时间
  deliveryTime: Date // 送达时间
  deliveryAttempts: number // 派送尝试次数
  deliveryStatus: number // 配送状态（10待发货 20已发货 30运输中 40派送中 50已送达 60配送失败 70已退回）
  deliverySignature: string // 签收人
  deliveryNotes: string // 配送备注
  customsDeclaration: string // 海关申报信息JSON
  customsStatus: number // 清关状态（0未申报 1申报中 2已清关 3清关失败）
  customsTrackingNo: string // 清关跟踪号
  isInsured: boolean // 是否投保
  insuranceAmount: number // 保险金额
  isSignatureRequired: boolean // 是否需要签收
  specialInstructions: string // 特殊说明
  packingSlipUrl: string // 装箱单URL
  shippingLabelUrl: string // 运单标签URL
  invoiceUrl: string // 发票URL
  remark: string // 备注
}

// 跨境电商订单发货 API
export const OrderShipmentApi = {
  // 查询跨境电商订单发货分页
  getOrderShipmentPage: async (params: any) => {
    return await request.get({ url: `/crossborder/order-shipment/page`, params })
  },

  // 查询跨境电商订单发货详情
  getOrderShipment: async (id: number) => {
    return await request.get({ url: `/crossborder/order-shipment/get?id=` + id })
  },

  // 新增跨境电商订单发货
  createOrderShipment: async (data: OrderShipmentVO) => {
    return await request.post({ url: `/crossborder/order-shipment/create`, data })
  },

  // 修改跨境电商订单发货
  updateOrderShipment: async (data: OrderShipmentVO) => {
    return await request.put({ url: `/crossborder/order-shipment/update`, data })
  },

  // 删除跨境电商订单发货
  deleteOrderShipment: async (id: number) => {
    return await request.delete({ url: `/crossborder/order-shipment/delete?id=` + id })
  },

  // 导出跨境电商订单发货 Excel
  exportOrderShipment: async (params) => {
    return await request.download({ url: `/crossborder/order-shipment/export-excel`, params })
  },
}